package com.foxnicweb.app.domain.patent.meta;

import com.github.foxnic.api.bean.BeanProperty;
import com.foxnicweb.app.domain.patent.UserMapping;
import java.util.Date;
import javax.persistence.Transient;



/**
 * @author 李方捷 , leefangjie@qq.com
 * @since 2023-04-19 10:25:35
 * @sign 5F4313C93B6A17A8A7D838E20FF7E106
 * 此文件由工具自动生成，请勿修改。若表结构或配置发生变动，请使用工具重新生成。
*/

public class UserMappingMeta {
	
	/**
	 * 主键 , 类型: java.lang.Long
	*/
	public static final String ID="id";
	
	/**
	 * 主键 , 类型: java.lang.Long
	*/
	public static final BeanProperty<com.foxnicweb.app.domain.patent.UserMapping,java.lang.Long> ID_PROP = new BeanProperty(com.foxnicweb.app.domain.patent.UserMapping.class ,ID, java.lang.Long.class, "主键", "主键", java.lang.Long.class, null);
	
	/**
	 * 对方系统账户ID , 类型: java.lang.Long
	*/
	public static final String REMOTE_USER_ID="remoteUserId";
	
	/**
	 * 对方系统账户ID , 类型: java.lang.Long
	*/
	public static final BeanProperty<com.foxnicweb.app.domain.patent.UserMapping,java.lang.Long> REMOTE_USER_ID_PROP = new BeanProperty(com.foxnicweb.app.domain.patent.UserMapping.class ,REMOTE_USER_ID, java.lang.Long.class, "对方系统账户ID", "对方系统账户ID", java.lang.Long.class, null);
	
	/**
	 * 本地账户ID , 类型: java.lang.String
	*/
	public static final String LOCAL_USER_ID="localUserId";
	
	/**
	 * 本地账户ID , 类型: java.lang.String
	*/
	public static final BeanProperty<com.foxnicweb.app.domain.patent.UserMapping,java.lang.String> LOCAL_USER_ID_PROP = new BeanProperty(com.foxnicweb.app.domain.patent.UserMapping.class ,LOCAL_USER_ID, java.lang.String.class, "本地账户ID", "本地账户ID", java.lang.String.class, null);
	
	/**
	 * 同步时间 , 类型: java.util.Date
	*/
	public static final String SYNC_TIME="syncTime";
	
	/**
	 * 同步时间 , 类型: java.util.Date
	*/
	public static final BeanProperty<com.foxnicweb.app.domain.patent.UserMapping,java.util.Date> SYNC_TIME_PROP = new BeanProperty(com.foxnicweb.app.domain.patent.UserMapping.class ,SYNC_TIME, java.util.Date.class, "同步时间", "同步时间", java.util.Date.class, null);
	
	/**
	 * 全部属性清单
	*/
	public static final String[] $PROPS={ ID , REMOTE_USER_ID , LOCAL_USER_ID , SYNC_TIME };
	
	/**
	 * 代理类
	*/
	public static class $$proxy$$ extends com.foxnicweb.app.domain.patent.UserMapping {

		private static final long serialVersionUID = 1L;

		
		/**
		 * 设置 主键
		 * @param id 主键
		 * @return 当前对象
		*/
		public UserMapping setId(Long id) {
			super.change(ID,super.getId(),id);
			super.setId(id);
			return this;
		}
		
		/**
		 * 设置 对方系统账户ID
		 * @param remoteUserId 对方系统账户ID
		 * @return 当前对象
		*/
		public UserMapping setRemoteUserId(Long remoteUserId) {
			super.change(REMOTE_USER_ID,super.getRemoteUserId(),remoteUserId);
			super.setRemoteUserId(remoteUserId);
			return this;
		}
		
		/**
		 * 设置 本地账户ID
		 * @param localUserId 本地账户ID
		 * @return 当前对象
		*/
		public UserMapping setLocalUserId(String localUserId) {
			super.change(LOCAL_USER_ID,super.getLocalUserId(),localUserId);
			super.setLocalUserId(localUserId);
			return this;
		}
		
		/**
		 * 设置 同步时间
		 * @param syncTime 同步时间
		 * @return 当前对象
		*/
		public UserMapping setSyncTime(Date syncTime) {
			super.change(SYNC_TIME,super.getSyncTime(),syncTime);
			super.setSyncTime(syncTime);
			return this;
		}

		/**
		 * 克隆当前对象
		*/
		@Transient
		public UserMapping clone() {
			return duplicate(true);
		}

		/**
		 * 复制当前对象
		 * @param all 是否复制全部属性，当 false 时，仅复制来自数据表的属性
		*/
		@Transient
		public UserMapping duplicate(boolean all) {
			$$proxy$$ inst=new $$proxy$$();
			inst.setSyncTime(this.getSyncTime());
			inst.setRemoteUserId(this.getRemoteUserId());
			inst.setId(this.getId());
			inst.setLocalUserId(this.getLocalUserId());
			inst.clearModifies();
			return inst;
		}

	}
}